export interface UserLogin {
  accountNumber: string;
  password: string;
  role: number
}

export interface APIData {
  code?: number;
  data: any;
  message?: string;
}

export interface IModifyPwd {
  id: string;
  password: string;
}

export interface LoginToken {
  token: string;
  role: number;
}

export interface TokenToInfo {
  studnet: IStu,
  teacher: ITch
}

export interface ITch {
  id: string;
  workId: string;
  password?: string;
  identityId: string;
  name: string;
  phone?: string;
  sex: number;
  qq?: string;
  isAdmin?: number;
  isResigned?: number;
}
export interface IStu {
  id: string;
  studentId: string;
  password?: string;
  identityId: string;
  phone: string;
  name: string;
  sex: number;
  stage: number;
  department: number;
  major: string;
  college: string;
  isDelete?: number;
  qq: string;
  grade: string;
  stuClass: string;
}

export interface IPageParams {
  otherParams: AllStuParams;
  pageParams: IPage;
}

interface IPage {
  pageNum: number;
  pageSize: number;
  sortField: string;
  sortType: string;
}

interface AllStuParams {
  college: string
  identityId?: string
  isDelete?: number | string
  major: string
  name: string
  sex: number | string
  stuClass: number | string
  studentId?: string
  grade: string
}

export interface ICoSelectedParams {
  studentId: string,
  courseId: string
}

export interface ICoursePageParams {
  otherParams: ICourseParams;
  pageParams: IPage;
}

export interface ICoSeDeleteParams {
  coSeIdList: string[];
  courseIdList: string[];
}

export interface ICoJudgeParams {
  courseId: string;
}

export interface IStuWork {
  id: string;
  studentId: string;
  stuName: string;
  department: number;
  isWorked: number;
  companyName: string;
  workType: string;
  workCity: string;
}

export interface IPageRes {
  pageNum: number;
  pageSize: number;
  rows: any;
  totalPages: number;
  totalSize: number;
}

export interface IFalseDelete {
  id: string;
  isDelete: number;
}

export interface ITchCoYearParams {
  workId: string;
}

export interface ITchCoYearList {
  schoolYearList: string[];
  stageList:number[];
  gradeList:number[];
}

export interface ITchCoYear {
  schoolYear: string;
  stage:number;
  grade:number;
  teachClass: string;
}

export interface ISchoolYearStage {
  schoolYear: string;
  stage: string;
}

export interface ICourseOneParams {
  courseId: string;
}

export interface IUpadteCourseColorParams {
  courseId: string;
  color:string;
}

// 我的选课记录分页
export interface ICoSePageParams {
  otherParams: ICoSeParams;
  pageParams: IPage;
}

interface ICoSeParams {
  course: ICourseParams;
  createTime: string;
  student: Student;
  teacher: Teacher;
}

interface Teacher {
  identityId?: string;
  isAdmin?: number;
  isResigned?: number;
  name?: string;
  sex?: string;
  workId?: string;
}

interface Student {
  college?: string;
  grade?: string;
  identityId?: string;
  isDelete?: number | string;
  major?: string;
  name?: string;
  sex?: string;
  stuClass?: number | string;
  studentId?: string;
}

interface ICourseParams {
  allowBand?: string;
  classHourType?: string;
  courseCode?: string;
  courseId?: string;
  courseIsDelete?: number | string;
  courseIsBegin?: number | string;
  scoreIsBegin?: number | string;
  courseName?: string;
  courseType?: string;
  credit?: string;
  grade?: string;
  maxPerson?: number;
  openCollege?: string;
  orderNum?: string;
  place?: string;
  schoolYear?: string;
  stage?: string;
  studentId?: string;
  tchName?: string;
  teachClass?: string;
  totalHours?: string;
  week?: string;
  weekDay?: string;
  workId?: string;
}

export interface ICourse {
  schoolYear: string;
  stage: string;
  grade: string;
  courseCode: string;
  courseName: string;
  teachClass: string;
  courseType: string;
  classHourType: string;
  openCollege: string;
  credit: number;
  maxPerson: number;
  totalHours: number;
  week: string;
  weekDay: string;
  orderNum: string;
  place: string;
  allowBand: string;
  id: string;
  workId: string;
  beginTime: string;
  endTime: string;
  courseIsBegin: number;
  scoreIsBegin: number;
  selectedNum: number;
}

export interface ICoManage {
  beginTime: string;
  endTime: string;
}

export interface ICoManageParams {
  courseId: string;
  beginTime: string;
  endTime: string;
}

export interface ICoManageList {
  courseIdList: string[];
  beginTime: string;
  endTime: string;
}

export interface IScore {
  id: string;
  courseId: string;
  courseName: string;
  courseCode: string;
  studentId: string;
  stuName: string;
  stuClass: string;
  major: string;
  college: string;
  grade: string;
  workId: string;
  tchName: string;
  score: number | string;
  createTime: string;
}

export interface Score {
  courseId: string;
  id?: string;
  score: number | string;
  studentId: string;
  workId: string;
}

export interface IScoreParams {
  addList: Score[];  //不带id
  updateList: Score[];//带id
}

export interface IScorePageParams {
  otherParams: IscorePageOtherParams;
  pageParams: IPage;
}

interface IscorePageOtherParams {
  courseId: string;
  studentId: string;
  stuName: string;
  stuClass: string;
  major: string;
  college: string;
  grade: string;
  workId: string;
  score: string;
  courseCode?: string;
  teachClass?: string;
  tchName?: string;
  scoreRange?: number[] | string;
  schoolYear?: string;
  stage?: number | string;
}

export interface ICourseTableParams {
  // grade: number;
  schoolYear: string;
  stage: number;
  studentId: string;
  week: number;
  workId: string;
}

export interface ITodayCourseParams {
  grade: number;
  schoolYear: string;
  stage: number;
  studentId: string;
  week: number;
  weekDay: number;
  workId: string;
}

export interface ICourseTable {
  courseId: string;
  courseName: string;
  courseCode: string;
  tchName: string;
  workId: string;
  weekDay: number;
  orderNum: number;
  smallCount: number;
  place: string;
  color: string;
}

export interface IHomePageChartParams {
  workId: string;
}

export interface IHomePageChart {
  theoryTotalStuNum: number;
  realityTotalStuNum: number;
  totalCourseNum: number;
  totalHours: number;
  passStuNum: number;
  perSchoolYearChartX: number[];
  perSchoolYearChartY: number[];
}

export interface IScoreAnalyseByTchParams {
  courseId: string;
}

export interface IScoreAnalyseByTch {
  lineXAxis: string[];
  lineYAxis: number[];
  maxScore: number;
  minScore: number;
  aveScore: number;
  hasScoreNum: number;
  overAveNum: number;
  personalRankList: PersonalRankList[];
}

interface PersonalRankList {
  studentId: string;
  score: string;
  rank: string;
  stuName: string;
}

export interface IScoreAnalyseByStuParams {
  schoolYear: string;
  stage: number | string;
  studentId: string;
}

export interface IScoreAnalyseByStu {
  perScoreList: IPerScoreList[];
  lineYList: number[];
  lineXList: string[];
  pieLabelList: string[];
  pieValueList: number[];
  passRate: number;
  aveScore: number;
}

export interface IPerScoreList {
  score: string;
  courseName: string;
  level: string;
}

export interface IAvatarParams {
  role: string;
  userId: string;
}

export interface IThemeColor {
  font: string;
  border: string;
  lighter: string;
  main: string;
  active: string;
  stripe: string;
  success: string;
  warning: string;
  danger: string;
}

export interface IStageList {
  stage: number;
  department: number;
  departmentName: string;
}

export interface IActiveTdList {
  rowNum: number;
  colNum: number;
}

export interface IActiveCourseList {
  rowNum: number;
  colNum: number;
  course: ICourseTable;
}

export interface IStuInfo {
  id: string;
  studentId: string;
  identityId: string;
  phone: string;
  name: string;
  sex: number;
  stage: number;
  department: number;
  major: string;
  college: string;
  qq: string;
}

export interface ITchInfo {
  id: string;
  workId: string;
  password?: any;
  identityId: string;
  name: string;
  phone: string;
  sex: number;
  qq?: string;
  isResigned?: number,
  isAdmin?: number,
}

export interface ITchPageParams {
  otherParams: IAllTchParams;
  pageParams: IPage;
}

export interface IAllTchParams {
  isAdmin: string;
  isResigned: string;
  name: string;
  sex: string;
  identityId?: string;
  workId: string;
}

export interface IFileStuParams {
  stuClass: string;
  major: string;
  college: string;
  grade: string;
  isDelete: string;
  name: string;
  sex: string;
  identityId: string;
  studentId: string;
}

export interface IFileCourseParams {
  courseCode: string;
  courseName: string;
  schoolYear: string;
  stage: string;
  courseType: string;
  openCollege: string;
  tchName: string;
  courseIsBegin: string;
  scoreIsBegin: string;
}

export interface IFileCoStuParams {
  college: string;
  courseId: string;
  schoolYear: string;
  grade: string;
  major: string;
  sex: string;
  stuClass: string;
}

export interface IFileScoreParams {
  college: string;
  courseId: string;
  grade: string;
  major: string;
  studentId: string;
  stuName: string;
  stuClass: string;
  scoreRange: string[];
}

export interface IQrCodeParams { 
  qrCodeParams: string; 
}

export interface IQrCodeLoginParams { 
  timeStamp: string; 
}

export interface IQrCodeBindParams { 
  userId: string; 
  timeStamp: string; 
}

export interface IBindWeiXinParams {
  userId: string; 
  openId: string; 
}

export interface IScanQrCodeRes {
  eventKey: string; 
  openId: string; 
  scanTime: string; 
}

